home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / biz / swood / FW_MEf.lha / FW_MEf / MEinfügen_V3.fwrexx < prev    next >
Text File  |  1998-01-28  |  4KB  |  188 lines

  1. /* Optimized with RexxOpt 1.7 */
  2.  
  3. R='0A'X
  4. Dre=0
  5. Sei=0
  6. Address='FinalW'
  7. Options results
  8. STATUS PORTNAME
  9. FW=result
  10. address(FW)
  11. SIGNAL ON BREAK_C
  12. SIGNAL ON SYNTAX
  13. 'ShowMessage 1 0 "Mehrfach Einfügen V1.65 - 28.01.98" "Neu: Das FW Makro-Paket V3" "Info im Mehrfach-Einfügen-Guide" "Weiter" "Abbruch" ""'
  14. If result=2 then Exit
  15. GetDocItemPrefs Decimal
  16. Punkt=Result
  17. If Punkt="Comma" then DocItemPrefs Decimal Period
  18. GraphicTool
  19. Ungroup
  20. nr=1
  21. CurrentObject
  22. ObjectId=Result
  23. IF ObjectId=0 THEN;do
  24. 'ShowMessage 1 1 "Fehler:" "Kein Grafikobjekt ausgewählt..." "" "Abbruch" "" ""'
  25. Call BREAK_C
  26. End
  27. Objekt.0=nr;Objekt.nr=ObjectID
  28. FirstObject Selected
  29. ID=result
  30. Call Zaehlen
  31. Do While 1
  32. NextObject ID Selected
  33. ID=result
  34. If ID=0 then Leave
  35. Call Zaehlen
  36. End
  37. If Objekt.0=1 then;do
  38. gruppe=false
  39. end
  40. else gruppe=true
  41. STATUS View
  42. Zoom=result
  43. STATUS Pages
  44. Seiten=result
  45. STATUS Page
  46. Seite=result
  47. kx=9999
  48. ky=9999
  49. If Gruppe=true then
  50. Do a=1 to Objekt.0
  51. GetObjectCoords Objekt.a
  52. Parse var result Soite ax ay rest
  53. if ax<kx then kx=ax
  54. if ay<ky then ky=ay
  55. end
  56. Do a=2 to Objekt.0
  57. SelectObject Objekt.a MULTIPLE
  58. End
  59. SelectObject Objekt.1 MULTIPLE
  60. If Gruppe=true then Group
  61. Copy
  62. IF RC=0 THEN;do
  63. CurrentObject
  64. ObjectID=result
  65. GetObjectCoords ObjectID
  66. Parse var result Seite x y w h
  67. wl=w
  68. hl=h
  69. if Gruppe=true then;do
  70. x=kx;y=ky
  71. End
  72. GetObjectRotation ObjectID
  73. Dreh=result
  74. GetObjectType ObjectID
  75. Typ=result
  76. If Gruppe=true then Group
  77. 'ShowMessage 2 0 "Wie soll die Bildschirmausgabe erfolgen?" "" "" "Normal" "Schnell" ""'
  78. ba=result
  79. Do While 1
  80. Result="ß"
  81. RequestText '"Mehrfach Einfügen" "Anzahl der Kopien" ""'
  82. Anzahl=Result
  83. If Anzahl="ß" then call BREAK_C
  84. If Anzahl=""|Anzahl=0 then call Ende
  85. If Datatype(Anzahl,'W')=1 then leave
  86. else call oops
  87. End
  88. Do while 1
  89. Result="ß"
  90. RequestText '"Mehrfach Einfügen" "Horizontale Verschiebung in cm" ""'
  91. Hor=Result
  92. If Hor="ß" then call BREAK_C
  93. If Hor="" then Hor=0
  94. If Datatype(Hor,'N')=1 then leave
  95. else call oops1
  96. End
  97. Do while 1
  98. Result="ß"
  99. RequestText '"Mehrfach Einfügen" "Vertikale Verschiebung in cm" ""'
  100. Ver=Result
  101. If Ver="ß" then call BREAK_C
  102. If Ver="" then Ver=0
  103. If Datatype(Ver,'N')=1 then leave
  104. else call oops1
  105. End
  106. Do while 1
  107. Result="ß"
  108. RequestText '"Mehrfach Einfügen" "Drehung in Grad" ""'
  109. Dre=Result
  110. If Dre="ß" then call BREAK_C
  111. If Dre="" then Dre=0
  112. If Datatype(Dre,'W')=1 then leave
  113. else call oops
  114. End
  115. Do While 1
  116. Result="ß"
  117. RequestText '"Mehrfach Einfügen" "Auf welche Seite? 0=dieselbe Seite" ""'
  118. Sei=Result
  119. If Sei="ß" then call BREAK_C
  120. If Sei=""|Sei=0 then Sei=Seite
  121. If Datatype(Sei,'W')=1 then leave
  122. else call oops
  123. End
  124. If ba=2 then View 400
  125. Do a=1 to (Sei-Seiten)
  126. InsertPageBreak
  127. End
  128. Do i=1 TO Anzahl
  129. Paste
  130. CurrentObject
  131. ObjectID=Result
  132. a=x+(Hor*i)
  133. b=y+(Ver*i)
  134. Winkel=Dreh+Dre*i
  135. If Typ=2|Typ=3 then;do
  136. GetPageSetup HEIGHT
  137. Pagehoehe=result
  138. w=wl+(Hor*i)
  139. h=hl+(Ver*i)
  140. If Sei~=1 then h=h+(sei-1)*Pagehoehe
  141. End
  142. SetObjectCoords ObjectID Sei a b w h
  143. SetObjectRotation ObjectID Winkel
  144. If Gruppe=true then Group
  145. End
  146. End
  147. If Sei~=Seite then GotoPage Sei
  148. Call WH
  149. Redraw
  150. 'ShowMessage 1 1 "Vielen Dank für die Benutzung." "© Heiko Schröder" "http://yi.com/home/SchroederHeiko" "Klick" "" ""'
  151. Exit
  152. ENDE:
  153. Call WH
  154. 'ShowMessage 1 1 "Falsche Anzahl an Kopien..." "" "" "Abbruch" "" ""'
  155. EXIT
  156. SYNTAX:
  157. Call WH
  158. 'ShowMessage 1 1 "Es ist ein Fehler aufgetreten." "Nähere Info in Datei «Ram:Fehler«" "" "Was?" "Gibts nicht!" "Sofort melden"'
  159. address "REXX"
  160. Open("F","Ram:Fehler","W")
  161. writeln("F","ACHTUNG! FW_MEf V1.65 Makro-Fehler"||R)
  162. writeln("F",'Fehler in Zeile' SIGL ':' ERRORTEXT(RC)||R)
  163. writeln("F",'Bitte informieren Sie den Autor unter age@thepentagon.com')
  164. Close("F")
  165. EXIT
  166. BREAK_C:
  167. Call WH
  168. 'ShowMessage 1 1 "Sie haben abgebrochen..." "© Heiko Schröder" "http://yi.com/home/SchroederHeiko" "Okay" "" ""'
  169. EXIT
  170. WH:
  171. If ba=2 then;do
  172. View Zoom
  173. GoToPage Sei
  174. End
  175. If Punkt="Comma" then DocItemPrefs DECIMAL Comma
  176. Return
  177. Zaehlen:
  178. If ID~=Objekt.1 then;do
  179. nr=nr+1
  180. Objekt.0=nr;Objekt.nr=ID
  181. End
  182. Return
  183. oops:
  184. 'ShowMessage 1 1 "Falsche Eingabe!" "Bitte ganzzahlige Eingabe!" "" "Okay" "" ""'
  185. return
  186. oops1:
  187. 'ShowMessage 1 1 "Falsche Eingabe!" "Bitte numerische Eingabe mit (.) !" "" "Okay" "" ""'
  188. return